﻿using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

using MySql.Data.MySqlClient;
using MySql.Data.Types;
using System.Data.Sql;
using System.Data.SqlClient;

namespace GCon
{
/// <summary>
/// Clase contenedora de Empresa
/// </summary>
public class Con_Empresa
{

        /// <summary>
        /// Constructor por defecto
        /// </summary>
        public Con_Empresa()
        {
            
        }

        /// <summary>
        /// Constructor con todos los parametros
        /// </summary>
        public Con_Empresa(String ID_PK, String NOMBRE, String CIF, String CONTACTO, String TLF_CONTACTO, String EMAIL, String DIRECCION)
        {
            this._ID_PK = ID_PK;
            this._NOMBRE = NOMBRE;
            this._CONTACTO = CONTACTO;
            this._CIF = CIF;
            this._TLF_CONTACTO = TLF_CONTACTO;
            this._EMAIL = EMAIL;
            this._DIRECCION = DIRECCION;
        }

        /// <summary>
        /// Constructor de copia
        /// </summary>
        /// <param name="otro"></param>
        public Con_Empresa(Con_Empresa otro)
        {
            this._ID_PK = otro._ID_PK;
            this._NOMBRE = otro._NOMBRE;
            this._CONTACTO = otro._CONTACTO;
            this._CIF = otro._CIF;
            this._TLF_CONTACTO = otro._TLF_CONTACTO;
            this._EMAIL = otro._EMAIL;
            this._DIRECCION = otro._DIRECCION;
        }

        /// Getters
        public String Get_ID_PK()
        {
            return this._ID_PK;
        }
        public String Get_NOMBRE()
        {
            return this._NOMBRE;
        }
        public String Get_CIF()
        {
            return this._CIF;
        }
        public String Get_CONTACTO()
        {
            return this._CONTACTO;
        }
        public String Get_TLF_CONTACTO()
        {
            return this._TLF_CONTACTO;
        }
        public String Get_EMAIL()
        {
            return this._EMAIL;
        }
        public String Get_DIRECCION()
        {
            return this._DIRECCION;
        }
        
        /// Setters 
        public void Set_ID_PK(String parametro)
        {
            this._ID_PK = parametro;
        }
        public void Set_NOMBRE(String parametro)
        {
            this._NOMBRE = parametro;
        }
        public void Set_CIF(String parametro)
        {
            this._CIF = parametro;
        }
        public void Set_CONTACTO(String parametro)
        {
            this._CONTACTO = parametro;
        }
        public void Set_TLF_CONTACTO(String parametro)
        {
            this._TLF_CONTACTO = parametro;
        }
        public void Set_EMAIL(String parametro)
        {
            this._EMAIL = parametro;
        }
        public void Set_DIRECCION(String parametro)
        {
            this._DIRECCION = parametro;
        }

        public void CargaEmpresa(int IdEmpresa)
        {
            MySqlConnection oConexion;
            MySqlDataAdapter oAdaptador;
            DataSet ds;
            String llamada;

            oConexion = new MySqlConnection();
            oConexion.ConnectionString = "Server=localhost;Database=MERYLAND;Uid=root;Pwd=MERYLAND;";
            oConexion.Open();

            llamada = "CALL CargaEmpresa ( '" + IdEmpresa + "' );";
            oAdaptador = new MySqlDataAdapter(llamada, oConexion);
            ds = new DataSet();
            oAdaptador.Fill(ds, "Tabla");

            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                this._ID_PK = dr["EMPRESA_ID_PK"].ToString();
                this._NOMBRE = dr["EMPRESA_NOMBRE"].ToString();
                this._CIF = dr["EMPRESA_CIF"].ToString();
                this._CONTACTO = dr["EMPRESA_CONTACTO"].ToString();
                this._TLF_CONTACTO = dr["EMPRESA_TLF_CONTACTO"].ToString();
                this._EMAIL = dr["EMPRESA_EMAIL"].ToString();
                this._DIRECCION = dr["EMPRESA_DIRECCION"].ToString();
                
            }

            oConexion.Close();
        }

        /// <summary>
        /// Procedimiento de inserción.
        /// Inserta en la BBDD un Empresa.
        /// </summary>
        public void InsertaEmpresa()
        {
            MySqlConnection oConexion;
            MySqlCommand oComando;
            String llamada;

            oConexion = new MySqlConnection();
            oConexion.ConnectionString = "Server=localhost;Database=MERYLAND;Uid=root;Pwd=MERYLAND;";

            llamada = "CALL InsertaEmpresa ( '" + this._NOMBRE + "','" + this._CIF + "','" + this._CONTACTO
                                            + "','" + this._TLF_CONTACTO + "','" + this._DIRECCION + "','" + this._EMAIL + "' );";
            oComando = new MySqlCommand(llamada, oConexion);

            oConexion.Open();
            oComando.ExecuteReader();

            oConexion.Close();
        }

        /// <summary>
        /// Procedimiento de modificación.
        /// Modifica en la BBDD un Empresa.
        /// </summary>
        public void ModificaEmpresa()
        {
            MySqlConnection oConexion;
            MySqlCommand oComando;
            String llamada;

            oConexion = new MySqlConnection();
            oConexion.ConnectionString = "Server=localhost;Database=MERYLAND;Uid=root;Pwd=MERYLAND;";

            llamada = "CALL ModificaEmpresa ( '" + this._ID_PK + "','" + this._NOMBRE + "','" + this._CIF + "','" + this._CONTACTO
                                            + "','" + this._TLF_CONTACTO + "','" + this._DIRECCION + "','" + this._EMAIL + "' );";
            oComando = new MySqlCommand(llamada, oConexion);

            oConexion.Open();
            oComando.ExecuteReader();

            oConexion.Close();
        }

        /// <summary>
        /// Procedimiento de eliminación.
        /// Elimina de la BBDD un Empresa.
        /// </summary>
        public void EliminaEmpresa()
        {
            MySqlConnection oConexion;
            MySqlCommand oComando;
            String llamada;

            oConexion = new MySqlConnection();
            oConexion.ConnectionString = "Server=localhost;Database=MERYLAND;Uid=root;Pwd=MERYLAND;";

            llamada = "CALL EliminaEmpresa ( '" + this._ID_PK + "' );";
            oComando = new MySqlCommand(llamada, oConexion);

            oConexion.Open();
            oComando.ExecuteReader();

            oConexion.Close();
        }

        ///Atributos
        private String _ID_PK;
        private String _NOMBRE;
        private String _CIF;
        private String _CONTACTO;
        private String _TLF_CONTACTO;
        private String _EMAIL;
        private String _DIRECCION;
        
    }
}